package com.icinfo.cloud.provider.punish.api.dto;

import com.icinfo.cloud.common.core.Validator.BaseGroup;
import com.icinfo.cloud.provider.common.annotation.CheckTime;
import com.icinfo.cloud.provider.punish.dto.CaseEvidencePhotoDto;
import com.icinfo.cloud.provider.punish.ucase.caseregister.dto.CaseHandlePersonInfoDto;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import java.util.List;

/**
 * 描述：简易案件信息暂存数据传输对象
 *
 * @author xiangyuyu
 * @date 2022/8/11
 * @since 1.3.2
 */
@NoArgsConstructor
@Data
public class ApiSimpleCaseTemporaryCacheDto {
    /**
     * 数据来源(数据字典-ApiVisitDataSourceEnum)
     */
    @NotBlank(message = "未指定数据来源")
    private String dataSource;

    /**
     * 数据来源方业务唯一主键id
     */
    @NotBlank(message = "数据来源方业务唯一主键id")
    private String dataSourceServiceId;

    /**
     * 案件id
     */
    private String caseId;

    //--------------取证-------------start

    /**
     * 案发时间
     */
    @CheckTime
    private String caseHappenTime;

    /**
     * 案发地址定位信息
     */
    private String caseHappenAddressLocationInfo;

    /**
     * 案发详细地址
     */
    private String caseHappenAddressDetail;

    /**
     * 取证照片
     */
    private List<CaseEvidencePhotoDto> caseEvidencePhotoList;

    /**
     * 反映内容
     */
    private String caseReactionContent;

    /**
     * 备注
     */
    private String caseRemark;

    //------------------案由------------------start
    /**
     *  领域code（案由）
     **/
    private String territoryCode;
    /**
     * 案由名称
     */
    private String caseReasonName;
    /**
     * 案由id
     */
    private String caseReasonId;
    /**
     * 案由编码
     */
    private String caseReasonCode;
    /**
     * 违则
     **/
    private String illegalBasis;

    /**
     * 违则详情
     **/
    private String  illegalDetail;
    /**
     * 罚则
     **/
    private String punishBasis;
    /**
     * 罚则详情
     **/
    private String punishDetail;
    /**
     * 事项编码
     **/
    private String  itemVersionCode;
    /**
     * 事项id
     **/
    private String  claimId;


    //------------------案由------------------end


    //-----------------------------当事人信息----------start

    /**
     * 当事人类型 1:个人 2:法人
     */
    private String partyType;
    /**
     * 当事人姓名
     **/
    private String name;
    /**
     * 当事人性别
     **/
    private String sex;
    /**
     * 年龄
     */
    private String age;
    /**
     * 当事人联系电话
     **/
    private String mobile;
    /**
     * 当事人证件类型
     **/
    private String certType;
    /**
     * 当事人证件号码
     **/
    private String certNo;
    /**
     * 当事人住址
     **/
    private String address;
    /**
     * 当事人工作单位
     **/
    private String unitName;
    /**
     * 当事人民族
     **/
    private String nationality;

    /**
     * 法定代表人或负责人--当事人法人
     **/
    private String legal;

    /**
     * 工作单位的职务--当事人法人
     **/
    private String job;
    /**
     * 统一社会信用代码--当事人法人
     **/
    private String uniscid;
    /**
     * 工作单位的电话--当事人法人
     **/
    private String phone;
    /**
     * 单位的地址--当事人法人
     **/
    private String unitAddress;
    /**
     * 法人身份证--当事人法人
     **/
    private String legalCertNo;
    /**
     * 法人证件类型--当事人法人
     **/
    private String legalCertType;

    /**
     * 单位单位名称--当事人法人
     **/
    private String entName;
    /**
     * 单位类型(1:法人 2:个体工商户 3:其他组织)--当事人法人
     **/
    private String entType;
    /**
     * 经营地址--当事人法人
     */
    private String businessAddress;

    /**
     * 当事人id ----前端不用传,后台逻辑使用
     */
    private String partyId;

    //-----------------------------当事人信息----------end

    //-----------------处罚信息----------------start
    /**
     * 办案人员列表
     */
    @Valid
    @NotBlank(message = "办案人员信息列表不能为空",groups = BaseGroup.Update.class)
    private List<CaseHandlePersonInfoDto> handlePersonInfoList;

    //-----------------处罚信息----------------end

}
